package com.luo.chengrui.module.crbpm.service.definition;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import com.luo.chengrui.module.crbpm.controller.admin.definition.vo.modelactivity.ModelActivityCreateReqVO;
import com.luo.chengrui.module.crbpm.controller.admin.definition.vo.modelactivity.ModelActivityPageReqVO;
import com.luo.chengrui.module.crbpm.dal.dataobject.definition.ModelActivityDO;
import org.flowable.engine.repository.Model;

import javax.validation.Valid;
import java.util.Collection;
import java.util.List;

/**
 * 流程模型正式版环节 Service 接口
 *
 * @author luodz
 */
public interface ModelActivityService {

    String FULL_PATH_SEPARATOR = "/";

    /**
     * 创建流程模型正式版环节
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    String createModelActivity(@Valid ModelActivityCreateReqVO createReqVO);

    /**
     * 更新流程模型正式版环节
     *
     * @param
     */
    void updateModelActivity(Model model);

    /**
     * 删除流程模型正式版环节
     *
     * @param id 编号
     */
    void deleteModelActivity(String id);

    /**
     * 获得流程模型正式版环节
     *
     * @param id 编号
     * @return 流程模型正式版环节
     */
    ModelActivityDO getModelActivity(String id);

    /**
     * 获得流程模型正式版环节列表
     *
     * @param ids 编号
     * @return 流程模型正式版环节列表
     */
    List<ModelActivityDO> getModelActivityList(Collection<String> ids);

    /**
     * 获得流程模型正式版环节分页
     *
     * @param pageReqVO 分页查询
     * @return 流程模型正式版环节分页
     */
    PageResult<ModelActivityDO> getModelActivityPage(ModelActivityPageReqVO pageReqVO);

}
